<?dyhb
class Timer{

	/**
	 * 微秒
	 * 
	 * @access private
	 * @var int
	 */
	private $_nMicroSec=0;

	/**
	 * 回调函数
	 * 
	 * @access private
	 * @var callback
	 */
	private $_oCallback;
	
	/**
	 * 参数
	 * 
	 * @access private
	 * @var array
	 */
	private $_arrArgs;
	
	/**
	 * 开始时间
	 * 
	 * @access private
	 * @var int
	 */
	private $_nStateTime;
	
	/**
	 * 执行次数
	 * 
	 * @access private
	 * @var int
	 */
	private $_nDoCount=0;
	
	/**
	 * 执行次数
	 * 
	 * @access private
	 * @var int
	 */
	private $_nDoneCount=0;

	/**
	 * 是否在执行中
	 * 
	 * @access private
	 * @var bool
	 */
	private $_bDoing=false;

	/**
	 * 计时器 ID
	 * 
	 * @access private
	 * @var int
	 */
	private $_nTimerId=-1;
	
	/**
	 * 自动销毁
	 * 
	 * @access private
	 * @var bool
	 */
	private $_bAutoDestroy=false;

	/**
	 * 计数器容器
	 * 
	 * @access private
	 * @static
	 * @var int
	 */
	static private $_arrTimers=array();

	/**
	 * 计数器ID
	 * 
	 * @access private
	 * @static
	 * @var int
	 */
	static private $_nAssignTimerId=0;

	/**
	 * 构造函数
	 *
	 * @access public
	 * @param $nSec int 时间
	 * @param $nMicroSec int 微妙时间
	 * @param $bAutoDestroy int 是否自动销毁
	 * @return void
	 */
	public function __construct($nSec,$nMicroSec=0,$bAutoDestroy=false){}
	
	/**
	 * 创建 计时器迭 代器 
	 *
	 * @access public
	 * @static
	 * @return Iterator
	 */
	static public function createTimerIterator(){}

	/**
	 * 取得 计时器 ID
	 *
	 * @access public
	 * @return int
	 */
	public function getTimerId(){}

	/**
	 * 析构函数
	 *
	 * @access public
	 * @return void
	 */
	public function destroyTimer(Timer $oTimer){}
	
	/**
	 * 计时开始
	 *
	 * @access public
	 * @param $Callbace callback 回调
	 * @param $nDoCount=1 int 执行次数
	 * @return void
	 */
	public function start($Callbace,$nDoCount=1,$arrArgs=array()){}

	/**
	 * 返回计时器是否在执行中	
	 *
	 * @access public
	 * @return bool
	 */
	public function isDoing(){}

	/**
	 * 循环执行，由系统调用
	 *
	 * @access public
	 * @return void
	 */
	public function loopOnce(){}
	
	/**
	 * 是否超时
	 *
	 * @access public
	 * @return bool
	 */
	public function isTimeOut(){}

	/**
	 * 检查所有定时器是否被触发
	 *
	 * @access public
	 * @static
	 * @return void
	 */
	static public function tick(){}
	
}
